package JUC.wn_syn_vlo;

public class 单例 {
    private static volatile 单例 danli; // 私1 防止自己.danli改
    private 单例(){} // 私2 在其他.java -> 不能new

    public static 单例 newSingle(){
        if(danli==null){
            synchronized (单例.class){ // 类锁 好有用
                if(danli==null){
                    danli = new 单例();
                }
            }
        }
        return danli;
    }

    public static void main(String[] args) {
        // 用类文件里 可以new, 但是实战用都是其他.java new -> 就不行了
        System.out.println(单例.newSingle());
        System.out.println(单例.newSingle());
        System.out.println(单例.newSingle());
    }
}
